<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Ruby Tutorial: Ruby Study Notes - Best Ruby Guide, Ruby Tutorial</title>
<script type="text/javascript" src="/js/prototype.js"></script>
<script type="text/javascript" src="/js/effects.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="Ruby Study Notes - Best Ruby Guide, Ruby Tutorial" />
<meta name="keywords" content="ruby study notes,free ruby programming guide,ruby guide,free ruby programming course,best ruby guide,ruby tutorials,ruby tutorial,learn ruby,ruby,ruby on rails,ruby rails,ruby learning,ruby tutoring,learning ruby,ruby programming,ruby on rails development,ruby training" />
<meta name="Distribution" content="Global" />
<meta name="author" content="Satish Talim / Original design: Erwin Aligam - ealigam@gmail.com" />
<meta name="copyright" content="Satish Talim 2007 and beyond..." />
<meta name="verify-v1" content="rFu86se+IkbtF+bH8mgJBKwU5HnKaSd8Ghw9umXQOkM=" />
<meta name="robots" content="index,follow" />
<meta http-equiv="Expires" content="0" />
<meta name="revisit-after" content="1 days" />
<link rel="stylesheet" href="/images/NewOrange.css" type="text/css" />
<link rel="icon" type="image/ico" href="/images/favicon.ico" />
<link href="https://plus.google.com/104011292189143717925/" rel="publisher" />
<!-- Google +1 button code -->
<link rel="canonical" href="/satishtalim/tutorial.html" />
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>

<!-- PUT THIS TAG IN THE head SECTION -->
<script type="text/javascript" src="http://partner.googleadservices.com/gampad/google_service.js">
</script>
<script type="text/javascript">
  GS_googleAddAdSenseService("ca-pub-2265705826025555");
  GS_googleEnableAllServices();
</script>
<script type="text/javascript">
  GA_googleAddSlot("ca-pub-2265705826025555", "RLTutRight336-280");
</script>
<script type="text/javascript">
  GA_googleFetchAds();
</script>
<!-- END OF TAG FOR head SECTION -->

<!-- Google Analytics code -->
<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-59044-10']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
<!-- Google Analytics code ends -->
</head>

<body>
<!-- wrap starts here -->
<div id="wrap">
    <div id="header">
        <h1 id="logo">Ruby<span class="orange">Learning.github.io</span></h1>
        <h2 id="slogan">Helping Ruby Programmers become Awesome!</h2>
    </div>

    <div id="menu">
        <ul>
            <li><a href="/" title="Home page for rubylearning.github.io">Home</a></li>
            <li><a href="/satishtalim/tutorial.html" title="Get started Learning Ruby here...">Tutorial</a></li>
            <li><a href="/download/downloads.html" title="Download this tutorial as an eBook">Downloads</a></li>
            <li><a href="/other/testimonials.html" title="People around the world who benefited from this site">Testimonials</a></li>
            <li><a href="/other/certification.html" title="Get certified in Ruby">Certification</a></li>
            <li><a href="/satishtalim/ruby_guide.html" title="Ruby Guide, Mentor">Mentor</a></li>
            <li><a href="https://blog.rubylearning.github.io/" title="Ruby blog of Learning Ruby site">Blog</a></li>
            <li><a href="/satishtalim/tutorial.html" title="Online Ruby Course">Online Course</a></li>
            <li><a href="http://ruby-challenge.rubylearning.github.io/" title="Ruby Programming Challenge for Newbies">Challenge</a></li>
            <li><a href="/satishtalim/about.html" title="Information about Satish Talim">About</a></li>
        </ul>
    </div>

    <!-- content-wrap starts here -->
    <div id="content-wrap">
            <div id="main">
                <div id="main-inner">
                <a name="TemplateInfo"></a>
                <!-- google_ad_section_start -->
                <h1>Ruby Study Notes: TOC</h1>
                <!-- <p class="float-right"> -->

                <!-- PUT THIS TAG IN DESIRED LOCATION OF SLOT RLTutRight336-280 -->
                <!-- <script type="text/javascript"> -->
                <!--   GA_googleFillSlot("RLTutRight336-280"); -->
                <!-- </script> -->
                <!-- END OF TAG FOR SLOT RLTutRight336-280 -->

                <!--
                <p><strong>Important</strong>: The fourth batch of the Free Online Ruby Programming Course starts 1st March 2008. <strong><a href="http://rubylearning.org/class/">Register</a></strong> and enroll for the course, now.</p>
                -->

                <h3>Core Ruby Programming</h3>

                <ul>
                  <li><a href="/satishtalim/introduction.html" >Introduction</a></li>
                  <li><a href="/satishtalim/ruby_installation.html" >Installation</a><ul><li>What is Ruby?</li><li>Downloading Ruby and an Editor</li><li>Ruby Programming Environment</li></ul></li>
                  <li><a href="/satishtalim/first_ruby_program.html" >First Ruby Program</a></li>
                  <li><a href="/satishtalim/features.html">Features</a></li>
                  <li><a href="/satishtalim/numbers_in_ruby.html">Numbers in Ruby</a><ul><li>Operators and Precedence</li><li>Difference between or and || operator</li></ul></li>
                  <li><a href="/satishtalim/fun_with_strings.html">Fun with Strings</a></li>
                  <li><a href="/satishtalim/variables_and_assignment.html">Variables and Assignment</a></li>
                  <li><a href="/satishtalim/ruby_summary1.html">Summary 1</a></li>
                  <li><a href="/satishtalim/scope.html" >Scope</a><ul><li>Global scope and global variables</li><li>Built-in global variables</li><li>Local scope</li></ul></li>
                  <li><a href="/satishtalim/getting_input.html" >Getting Input</a></li>
                  <li><a href="/satishtalim/ruby_names.html" >Names in Ruby</a></li>
                  <li><a href="/satishtalim/more_on_ruby_methods.html" >More on Ruby Methods</a></li>
                  <li><a href="/satishtalim/writing_own_ruby_methods.html" >Writing own Ruby Methods</a><ul><li>Bang (!) methods</li><li>Method names ending with ?</li></ul></li>
                  <li><a href="/satishtalim/ruby_summary2.html">Summary 2</a></li>
                  <li><a href="/satishtalim/ruby_ri_tool.html" >Ruby ri Tool</a></li>
                  <li><a href="/satishtalim/more_on_strings.html" >More on Strings</a>
                    <ul>
                      <li>Listing all methods of a class or object</li>
                      <li>Comparing two strings for equality</li>
                      <li>Using %w</li>
                      <li>Character Set</li>
                      <li>Character Encoding</li>
                      <li>Encoding class</li>
                    </ul>
                  </li>
                  <li><a href="/satishtalim/simple_constructs.html" >Simple Constructs</a><ul><li>Conditional ?:</li><li>Statement modifiers</li><li>Case Expressions</li><li>nil is an Object</li><li>Difference between FALSE and NIL</li></ul></li>
                  <li><a href="/satishtalim/ruby_blocks.html" >Ruby Blocks</a></li>
                  <li><a href="/satishtalim/ruby_summary3.html">Summary 3</a></li>
                  <li><a href="/satishtalim/ruby_arrays.html" >Ruby Arrays</a><ul><li>Parallel Assignment</li><li>Environment Variables</li><li>Command line arguments</li><li>Library GetoptLong</li></ul></li>
                  <li><a href="/satishtalim/ruby_ranges.html" >Ranges</a></li>
                  <li><a href="/satishtalim/ruby_symbols.html" >Ruby Symbols</a></li>
                  <li><a href="/satishtalim/ruby_hashes.html" >Hashes</a><ul><li>Using Symbols as Hash Keys</li></ul></li>
                  <li><a href="/satishtalim/ruby_random_numbers.html" >Random Numbers</a></li>
                  <li><a href="/satishtalim/read_write_files.html" >Read/Write files</a><ul><li>Traversing Directory Trees</li><li>Random Access</li></ul></li>
                  <li><a href="/satishtalim/ruby_summary4.html">Summary 4</a></li>
                  <li><a href="/satishtalim/ruby_regular_expressions.html" >Regular Expressions</a><ul><li>Literal characters</li><li>The wildcard character . (dot)</li><li>Character classes</li><li>Special escape sequences for common character classes</li></ul></li>
                  <li><a href="/satishtalim/writing_our_own_class_in_ruby.html" >Writing our own Class</a><ul><li>Literal Constructors</li><li>Garbage Collection</li><li>Class Methods</li></ul></li>
                  <li><a href="/satishtalim/ruby_method_missing.html" >Method Missing</a></li>
                  <li><a href="/satishtalim/ruby_procs.html" >Ruby Procs</a></li>

                  <li><a href="/satishtalim/including_other_files_in_ruby.html" >Including Other Files</a></li>
                  <li><a href="/satishtalim/ruby_open_classes.html" >Ruby Open Classes</a></li>
                  <li><a href="/satishtalim/ruby_inheritance.html" >Inheritance</a><ul><li>Inheritance and Instance Variables</li></ul></li>
                  <li><a href="/satishtalim/ruby_overriding_methods.html" >Overriding Methods</a><ul><li>Usage of super</li><li>Redefining methods</li><li>Abstract Class</li></ul></li>
                  <li><a href="/satishtalim/ruby_overloading_methods.html" >Ruby Overloading Methods</a></li>
                  <li><a href="/satishtalim/ruby_summary5.html">Summary 5</a></li>
                  <li><a href="/satishtalim/ruby_access_control.html" >Access Control</a><ul><li>Overriding private methods</li><li>Top-level methods</li><li>Are instance variables inherited by a sub-class?</li></ul></li>
                  <li><a href="/satishtalim/ruby_exceptions.html" >Exceptions</a><ul><li>Raising an Exception</li><li>Handling an Exception</li><li>Validation example</li></ul></li>
                  <li><a href="/satishtalim/ruby_logging.html" >Ruby Logging</a></li>
                  <li><a href="/satishtalim/ruby_time_class.html" >Ruby Time class</a></li>
                  <li><a href="/satishtalim/ruby_summary6.html">Summary 6</a></li>
                  <li><a href="/satishtalim/duck_typing.html" >Duck Typing</a></li>
                  <li><a href="/satishtalim/ruby_syntactic_sugar.html" >Ruby Syntactic Sugar</a></li>
                  <li><a href="/satishtalim/mutable_and_immutable_objects.html" >Mutable and Immutable Objects</a><ul><li>Freezing Objects</li><li>frozen?</li></ul></li>
                  <li><a href="/satishtalim/ruby_summary7.html">Summary 7</a></li>
                  <li><a href="/satishtalim/object_serialization.html" >Object Serialization</a></li>
                  <li><a href="/satishtalim/modules_mixins.html" >Modules/Mixins</a></li>
                  <li><a href="/satishtalim/ruby_self.html" >Self</a><ul><li>Top level context</li><li>Self inside class and module definitions</li><li>Self in instance method definitions</li><li>Self in singleton-method and class-method definitions</li></ul></li>
                  <li><a href="/satishtalim/ruby_constants.html" >Constants</a></li>
                  <li><a href="/satishtalim/ruby_summary9.html">Summary 8</a></li>
                </ul>

                <!--
                <h3>Advanced Ruby</h3>
                <ul>
                  <li><a href="/satishtalim/ruby_socket_programming.html" >Socket Programming and Threads</a>
                    <ul>
                      <li>Basic Networking
                        <ul>
                          <li>Port</li>
                          <li>Internet Addresses</li>
                          <li>Sockets</li>
                        </ul>
                      </li>
                      <li>Socket classes</li>
                      <li><a href="/satishtalim/ruby_threads.html">Threads</a></li>
                      <li>The Date Time Server and Client</li>
                      <li>Summary</li>
                    </ul>
                  </li>
                  <li><a href="/satishtalim/ruby_smtp.html" >SMTP class</a> </li>
                  <li><a href="/satishtalim/ruby_web_services.html" >Web services</a><ul><li>Writing a RubyLearning SOAP server and client</li></ul></li>
                  <li><a href="/satishtalim/ruby_web_services.html" >Ruby Internet Services</a><ul><li>Retrieving a Web Page from a URL</li></ul></li>
                  <li><a href="/satishtalim/ruby_mysql_tutorial.html" >Ruby MySQL Tutorial</a></li>
                  <li><a href="/satishtalim/ruby_activerecord_and_mysql.html" >Ruby ActiveRecord and MySQL</a><ul><li>Active Record</li><li>MySQL</li><li>Creation of students database and rubyists table</li><li>Ruby code to access the table rubyists</li></ul></li>
                  <li><a href="/satishtalim/ruby_on_rails.html" >Ruby on Rails</a><ul><li>MVC</li><li>Installation</li><li>Useful Rails Links</li></ul></li>

                  <li><a href="/satishtalim/ruby_tk_tutorial.html" >Ruby/Tk</a><ul><li>Simple Tk applications</li><li>Logger class</li></ul></li>
                  <li><a href="http://sitekreator.com/satishtalim/unit_testing.html" >Unit Testing</a></li>
                  <li><a href="http://sitekreator.com/satishtalim/ruby_tools.html" >Ruby Tools</a><ul><li>irb</li><li>The debugger</li><li>Profiling</li><li>ri and RDoc</li><li>ERb</li></ul></li>
                  <li><a href="http://sitekreator.com/satishtalim/java_to_ruby.html" >Java to Ruby</a><ul><li>Similarities</li><li>Differences</li></ul></li>
                  <li><a href="/satishtalim/jruby_tutorial.html" >JRuby Tutorial</a><ul><li>What is JRuby?</li><li>Download and Setup</li><li>Where to use JRuby</li><li>Resources</li><li>Useful Articles</li></ul></li>
                  <li><a href="http://sitekreator.com/satishtalim/solutions.html" >Solutions</a></li>
                  <li><a href="/satishtalim/ruby_quirks.html" >Ruby Quirks</a></li>
                </ul>
                -->

                <p style="background-color: #FAFAFA; padding: 5px; margin-top: 20px; font-size: 65%;"><b>Note</b>: The Ruby Logo is Copyright (c) 2006, Yukihiro Matsumoto. I have made extensive references to information, related to Ruby, available in the public domain (wikis and the blogs, articles of various <span style="font-weight: bold;" title="Click Gurus on the menu above">Ruby Gurus</span>), my acknowledgment and thanks to all of them. Much of the material on <a href="/">rubylearning.github.io</a> and in the course at <a href="http://rubylearning.org/">rubylearning.org</a> is drawn <b>primarily</b> from the <b>Programming Ruby book</b>, available from <a href="https://pragprog.com/book/ruby4/programming-ruby-1-9-2-0">The Pragmatic Bookshelf</a>.</p>
                </div>
            <!-- main inner ends here -->
        </div>

           <div id="rightbar">
                <!--
               <div style="font: bold 13px/16px arial,sans-serif; text-align: center;"><a href="https://plus.google.com/104011292189143717925/?prsrc=3" style="text-decoration: none; color: #333;"><img src="https://ssl.gstatic.com/images/icons/gplus-64.png" alt="Google+" width="64" height="64" style="padding-bottom:0.5em;" /></a><br />RubyLearning on Google+</div>

                <p><a title="Covers Core Ruby programming" href="http://book.rubylearning.org/"><img src="/images/rubybook.jpg" style="border: 0px none ;" alt="Covers Core Ruby programming" /></a></p>

                <p><a title="Ruby Programming Challenge For Newbies" href="http://ruby-challenge.rubylearning.org/"><img src="/images/rubypc.jpg" style="border: 0px none ;" alt="Ruby Programming Challenge For Newbies" title="Ruby Programming Challenge For Newbies" /></a></p>

                <p><a title="Free Online Ruby Programming Course" href="http://rubylearning.org/"><img src="/images/rlbanner.jpg" style="border: 0px none ;" alt="Free Ruby Course" /></a></p>

                <p><a title="Covers Intermediate Ruby programming" href="http://intermediateruby.rubylearning.org/"><img src="/images/rubybook.jpg" style="border: 0px none ;" alt="Covers Intermediate Ruby programming" /></a></p>

                <p><a title="Advertise your Banner - Contact mail@satishtalim.com" href="http://rubylearning.org/"><img src="/images/advertise.png" style="border: 0px none ;" alt="Advertise your Banner - Contact mail@satishtalim.com" /></a></p>
                -->
            </div>

    <!-- content-wrap ends here -->
    </div>
<!-- wrap ends here -->
</div>

<!-- footer starts here -->
<div id="footer">
    <p>&copy; 2006-2021 <strong>rubylearning.github.io - A Ruby Tutorial</strong>&nbsp;&nbsp;Page Updated: 5th Jan. 2021 | Design: <a href="mailto:ealigam@gmail.com">Erwin Aligam</a> | Valid: <a href="http://validator.w3.org/check/referer">XHTML</a> | <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="/">Home</a> | <a href="/privacy.html">Privacy</a> | <a href="/sitemap.html">Sitemap</a></p>
</div>
<!-- footer ends here -->

</body>
</html>
